package tr.edu.ege.kipler.satisfiability.container.creational;

import tr.edu.ege.kipler.satisfiability.clash.SHOIQClashDetectionStrategy;
import tr.edu.ege.kipler.satisfiability.container.ABox;
import tr.edu.ege.kipler.satisfiability.container.PBox;
import tr.edu.ege.kipler.satisfiability.container.RBox;
import tr.edu.ege.kipler.satisfiability.container.SHOIQABox;
import tr.edu.ege.kipler.satisfiability.container.TBox;
import tr.edu.ege.kipler.satisfiability.container.operational.ClashDetectionObserver;
import tr.edu.ege.kipler.satisfiability.container.operational.ModifiedIndividualObserver;
import tr.edu.ege.kipler.satisfiability.container.operational.NominalMaintainingObserver;

/**
 * 
 * @author İnanç Seylan
 *
 */
public class SHOIQModifiedIndividualListBoxFactory extends BoxFactory {

	public ABox createABox() {
		SHOIQABox result = new SHOIQABox();
		result.addObserver(new NominalMaintainingObserver());
		result.addObserver(new ClashDetectionObserver(
				new SHOIQClashDetectionStrategy()));
		result.addObserver(new ModifiedIndividualObserver());
		return result;
	}

	public PBox createPBox() {
		return new PBox();
	}

	public RBox createRBox() {
		return new RBox();
	}

	public TBox createTBox() {
		return new TBox();
	}

}
